package runze.util.base;

/**
 * 条件接口，
 * 
 * 用于实现接口的条件类的对象从控制层传递到dao层进行查询
 *
 * @author wrzhxy@qq.com
 * @创建时间 2017年4月28日 上午11:50:28
 */
public class Query {
	private static final int PAGESIZE = 20;
	
	protected int pageNo = 1;
	protected int pageSize = PAGESIZE;	// 每页最大数据量
	protected int maxPageNo = 1;
	
	public Query() {
		pageNo = 1;
		pageSize = PAGESIZE;
		maxPageNo = 1;
	}
	/**
	 * 用总数据量计算总页数
	 * @param totalData 总数据量
	 */
	public Query(long totalData) {
		maxPageNo = (int)(totalData + pageSize -1) / pageSize;
	}
	public Query(int pageNo, int pageSize) {
		this.pageNo = pageNo;
		this.pageSize = pageSize;
	}
	public Query(int pageNo, int pageSize, int totalData) {
		this.pageNo = pageNo;
		this.pageSize = pageSize;
		this.maxPageNo = (totalData + pageSize -1) / pageSize;
	}
	public int getPageNo() {
		return pageNo > 0 ? pageNo : 1;
	}
	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
	}
	public int getPageSize() {
		return pageSize > 0 ? pageSize : PAGESIZE;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getMaxPageNo() {
		return maxPageNo;
	}
	/**
	 * 用总数据量计算总页数
	 * @param totalData 总数据量
	 */
	public void setMaxPageNo(long totalData) {
		maxPageNo = (int)(totalData + pageSize -1) / pageSize;
		maxPageNo = maxPageNo == 0 ? 1 : maxPageNo;
	}
}
